Skip to main content
Minh Nong
💬
0 discussions

[API] customer-service

Tài liệu này nhằm mục đích quản lý số lượng và chức năng của endpoints trong command-service. Người đọc có thể dựa vào tên của files và tên endpoints để dễ dàng kiểm tra thông tin apis source code.

API Endpoints

Response

  • 200: Success
  • 403: Forbidden
  • 400: Bad Request

Auth

  • Auth Type : Bearer Token

index.js

Delete Customer

  • Route: /callcenter/:callcenter_id/customer
  • Params: callcenter_id
  • Method: DELETE
  • Return Format:
    • Success: 200 { success: true }
    • Failure: 500 { success: false, error: err.message }

activity.js

Create Activity

  • Route: /callcenter/:callcenter_id/activity
  • Params: callcenter_id
  • Query: versionSchema
  • Body: creator, text, type (note, calllog, reminder), body
  • Method: POST
  • Return Format:
    • Success: 200 { success: true, result }
    • Failure: 400 { success: false, error: { message: error } }

Get Activity

  • Route: /callcenter/:callcenter_id/activity/:activity_id
  • Method: GET
  • Params: callcenter_id, activity_id
  • Return Format:
    • Success: 200 { success: true, result }
    • Failure: 400 { success: false, error: { message: error } }

Update Activity

  • Route: /callcenter/:callcenter_id/activity/:activity_id
  • Method: PUT
  • Params: callcenter_id, activity_id
  • Query: versionSchema
  • Body: _id, createdAt, updatedAt, type, creator
  • Return Format:
    • Success: 200 { success: true}
    • Failure: 400 { success: false, error: { message: error } }

Delete Activity

  • Route: /callcenter/:callcenter_id/activity/:activity_id
  • Method: DELETE
  • Params: callcenter_id, activity_id
  • Query: versionSchema
  • Return Format:
    • Success: { success: true }
    • Failure: { success: false, error: { message: error } }

Post Activity for Contact

  • Route: /callcenter/:callcenter_id/contact/:contact_id/activity
  • Method: POST
  • Params: callcenter_id, contact_id
  • Query: versionSchema
  • Body: creator, text, type (note, calllog, reminder), body
  • Return Format:
    • Success: 200 { success: true, result }
    • Failure: 400 { success: false, error: { message: error } }

Get Activity for Contact

  • Route: /callcenter/:callcenter_id/contact/:contact_id/activity/:activity_id
  • Method: GET
  • Params: callcenter_id, contact_id, activity_id
  • Return Format:
    • Success: 200 { success: true, result }
    • Failure: 400 { success: false, error: { message: error } }

Update Activity for Contact

  • Route: /callcenter/:callcenter_id/contact/:contact_id/activity/:activity_id
  • Method: PUT
  • Params: callcenter_id, contact_id, activity_id
  • Body: _id, createdAt, updatedAt, type, idContact, creator
  • Return Format:
    • Success: 200 { success: true }
    • Failure: 400 { success: false, error: { message: error } }

Delete Activity for Contact

  • Route: /callcenter/:callcenter_id/contact/:contact_id/activity/:activity_id
  • Method: DELETE
  • Params: callcenter_id, contact_id, activity_id
  • Query: versionSchema
  • Return Format:
    • Success: { success: true }
    • Failure: { success: false, error: { message: error } }

Get Activities for Contact

  • Route: /callcenter/:callcenter_id/contact/:contact_id/activities

  • Method: GET

  • Params: callcenter_id, contact_id

  • Query: type, time, time1, time2, liken, callTags, from, to, page, limit, isReconnected, uuid, status

  • Return Format:

    • Success: 200 { success: true, result, hasMore }
    • Failure: 400 { success: false, error: { message: error } }

Delete Activities for Contact

  • Route: /callcenter/:callcenter_id/contact/:contact_id/activities

  • Method: DELETE

  • Params: callcenter_id, contact_id

  • Query: versionSchema

  • Return Format:

    • Success: 200 { success: true }
    • Failure: 400 { success: false, error: { message: error } }

Get Activities for Phone

  • Route: /callcenter/:callcenter_id/phone/:phone/activities

  • Method: GET

  • Params: callcenter_id, phone

  • Query: type, time, time1, time2, liken, callTags, from, to, page, limit, isReconnected, status

  • Return Format:

    • Success: 200 { success: true, result, hasMore }
    • Failure: 400 { success: false, error: { message: error } }

Delete Activities for Phone

  • Route: /callcenter/:callcenter_id/phone/:phone/activities
  • Method: Delete
  • Params: callcenter_id, phone, contact_id
  • Return Format:
    • Success: 200 { success: true }
    • Failure: 400 { success: false, error: { message: error } }

Get All Activities

  • Route: /callcenter/:callcenter_id/activities

  • Method: GET

  • Params: callcenter_id

  • Query: idAgent, callTags, all, page, limit, from, to, lookup, query

  • Return Format:

    • Success: 200 { success: true, result, hasMore, count }
    • Failure: 400 { success: false, error: { message: error } }

Create Activities

  • Route: /callcenter/:callcenter_id/activities
  • Method: POST
  • Params: callcenter_id
  • Body: idAgent, callTags, all, page, limit, from, to, lookup, idGroup, query
  • Return Format:
    • Success: 200 { success: true, result, hasMore, count }
    • Failure: 400 { success: false, error: { message: error } }

Update Activities

  • Description: Update many.
  • Route: /callcenter/:callcenter_id/activities
  • Method: POST
  • Params: callcenter_id
  • Query: versionSchema
  • Body: filter, data
  • Return Format:
    • Success: 200 { success: true }
    • Failure: 400 { success: false, error: { message: error } }

Get Activities Sum

  • Route: /callcenter/:callcenter_id/activities/sum

  • Method: GET

  • Params: callcenter_id

  • Query: idAgent,filter

  • Return Format:

    • Success: 200 { success: true, result: final }
    • Failure: 400 { success: false, error: { message: error } }

Get Activities Count

  • Description: Retrieve the count of activities.
  • Route: /callcenter/:callcenter_id/activities/count
  • Method: GET
  • Params: callcenter_id
  • Query: idAgent,filter
  • Return Format:
    • Success: 200 { success: true, result: final }
    • Failure: 400 { success: false, error: { message: error } }

Get Activities Chart

  • Route: /callcenter/:callcenter_id/activities/chart
  • Method: GET
  • Params: callcenter_id
  • Query: idAgent,filter
  • Return Format:
    • Success: 200 { success: true, result: {} }
    • Failure: 400 { success: false, error: { message: error } }

Add Tags for Activity

  • Route: /callcenter/:callcenter_id/activity/:activity_id/tags
  • Method: POST
  • Params: callcenter_id, activity_id
  • Query: versionSchema
  • Body: list
  • Return Format:
    • Success: 200 { success: true, result }
    • Failure: 400 { success: false, error: { message: error } }

Delete Tags for Activity

  • Route: /callcenter/:callcenter_id/activity/:activity_id/tags
  • Method: DELETE
  • Params: callcenter_id, activity_id
  • Query: versionSchema
  • Return Format:
    • Success: 200 { success: true }
    • Failure: 400 { success: false, error: { message: error } }

agentgroup.js

Add Phones to Agent Group

  • Route: /callcenter/:callcenter_id/agentgroup/:agent_id/phones
  • Method: POST
  • Params: callcenter_id, agent_id
  • Query: not
  • Return Format:
    • Success: { success: true, result }
    • Failure: { success: false, error: { message: error } }

Add List Contact Group to Agent

  • Route: /callcenter/:idCallcenter/agentgroup/:idAgent/groups

  • Method: POST

  • Params: callcenter_id, idAgent

  • Body: listContactGroup

  • Query: versionSchema

  • Return Format:

    • Success: { success: true, result }
    • Failure: { success: false, error: { message: error } }

call_log.js

Create a New Call Log

  • Route: /callcenter/:callcenter_id/calllog
  • Method: POST
  • Params: callcenter_id
  • Body: direction (incoming, outgoing), status (missed, rejected, busy, connected, canceled, wrong-number, success, no-answer), phone, source, destination, start, end, duration
  • Query: versionSchema
  • Return Format:
    • Success: { success: true, result }
    • Failure: { success: false, error: { message: error } }

Get Call Log By ID

  • Route: /callcenter/:callcenter_id/calllog/:calllog_id

  • Method: GET

  • Params: callcenter_id, calllog_id

  • Return Format:

    • Success: { success: true, result }
    • Failure: { success: false, error: { message: error } }

    Update Call Log By ID

  • Route: /callcenter/:callcenter_id/calllog/:calllog_id

  • Method: PUT

  • Params: callcenter_id, calllog_id

  • Body: _id, createdAt, updatedAt

  • Return Format:

    • Success: { success: true, result }
    • Failure: { success: false, error: { message: error } }

Delete Call Log

  • Route: /callcenter/:callcenter_id/calllog/:calllog_id
  • Method: DELETE
  • Params: callcenter_id, calllog_id
  • Return Format:
    • Success: { success: true }
    • Failure: { success: false, error: { message: error } }

Get Call Logs

  • Route: /callcenter/:callcenter_id/calllogs
  • Method: GET
  • Params: callcenter_id
  • Query: all, page, limit, filter, idAgent, from, to
  • Return Format:
    • Success:
      • GET: { success: true, result: result.splice(0, limit), hasMore, count })
    • Failure: { success: false, error: { message: error } }

Update Call Logs

  • Route: /callcenter/:callcenter_id/calllogs
  • Method: PUT
  • Params: callcenter_id
  • Body: filter, data
  • Return Format:
    • Success:
      • PUT: { success: true }
    • Failure: { success: false, error: { message: error } }

contact_field.js

Create Contact Field

  • Route: /callcenter/:callcenter_id/contactfield
  • Method: POST
  • Params: callcenter_id
  • Query: versionSchema
  • Body: field, fieldName, fieldDisplayName, idGroup
  • Return Format:
    • Success: 200 { success: true, result }
    • Failure: 400 { success: false, error: { message: error } }

Get Contact Field

  • Route: /callcenter/:callcenter_id/contactfield/:contactfield_id

  • Method: GET

  • Params: callcenter_id, contactfield_id

  • Return Format:

    • Success: 200 { success: true, result }
    • Failure: 400 { success: false, error: { message: error } }

    Update Contact Field

  • Route: /callcenter/:callcenter_id/contactfield/:contactfield_id

  • Method: PUT

  • Params: callcenter_id, contactfield_id

  • Query: versionSchema

  • Body: field

  • Return Format:

    • Success: 200 { success: true }
    • Failure: 400 { success: false, error: { message: error } }

Delete Contact Field

  • Route: /callcenter/:callcenter_id/contactfield/:contactfield_id
  • Method: DELETE
  • Params: callcenter_id, contactfield_id
  • Query: versionSchema
  • Return Format:
    • Success: 200 { success: true }
    • Failure: 400 { success: false, error: { message: error } }

Get All Contact Fields

  • Route: /callcenter/:callcenter_id/contactfields/all

  • Method: GET

  • Params: callcenter_id

  • Query: req.query

  • Return Format:

    • Success: 200 { success: true, result }
    • Failure: 400 { success: false, error: { message: error } }

contact_group.js

Create Contact Group

  • Route: /callcenter/:callcenter_id/contactgroup
  • Method: POST
  • Params: callcenter_id
  • Query: versionSchema
  • Body: name, creator, maingroup, description, list
  • Return Format:
    • Success: 200 { success: true, result: final}
    • Failure: 400 { success: false, error: { message: error } }

Get Contact Group

  • Route: /callcenter/:callcenter_id/contactgroup/:contactgroup_id
  • Method: GET
  • Params: contactgroup_id, callcenter_id
  • Return Format:
    • Success: 200 success: true, result: result}
    • Failure: 400 { success: false, error: { message: error } }

Put Contact Group

  • Route: /callcenter/:callcenter_id/contactgroup/:contactgroup_id

  • Method: PUT

  • Query: versionSchema

  • Body: 'name, description, deleted, mainGroup, subjectGroup,mainGroupName

  • Return Format:

    • Success: 200 { success: true }
    • Failure: 400 { success: false, error: { message: error } }

Delete Contact Group

  • Route: /callcenter/:callcenter_id/contactgroup/:contactgroup_id

  • Method: DELETE

  • Params: callcenter_id, contactgroup_id

  • Query: versionSchema

  • Return Format:

    • Success: 200 { success: true }
    • Failure: 400 { success: false, error: { message: error } }

Get All Contact Groups

  • Route: /callcenter/:callcenter_id/contactgroups
  • Method: GET
  • Params: callcenter_id
  • Query: idAgent, limit , page
  • Return Format:
    • Success: 200 { success: true, result: result.splice(0, limit), hasMore: hasMore }
    • Failure: 400 { success: false, error: { message: error } }

Search Contact Groups

  • Route: /callcenter/:callcenter_id/contactgroups/search
  • Method: GET
  • Params: callcenter_id
  • Query: idAgent, q, mode, page, limit
  • Return Format:
    • Success: 200 { success: true, result: result.splice(0, limit), hasMore }
    • Failure: 400 { success: false, error: { message: error } }

Add Contacts in Contact Group

  • Route: /callcenter/:callcenter_id/contactgroup/:contactgroup_id/contacts
  • Method: POST
  • Params: callcenter_id, contactgroup_id
  • Query: versionSchema
  • Body: list
  • Return Format:
    • Success: 200 { success: true, result: list }
    • Failure: 400{ success: false, error: { message: error } }

Get Contacts in Contact Group

  • Route: /callcenter/:callcenter_id/contactgroup/:contactgroup_id/contacts
  • Method: GET
  • Params: callcenter_id, contactgroup_id
  • Query: all, direction,status, limit, page
  • Return Format:
    • Success: 200 { success: true, result: result.splice(0, limit),hasMore: hasMore, count: count }
    • Failure: 400{ success: false, error: { message: error } }

Delete Contacts in Contact Group

  • Route: /callcenter/:callcenter_id/contactgroup/:contactgroup_id/contacts
  • Method: DELETE
  • Params: callcenter_id, contactgroup_id
  • Query: versionSchema
  • Body: list
  • Return Format:
    • Success: 200 res.json({ success: true, result: list }
    • Failure: 400{ success: false, error: { message: error } }

Search Contacts in Contact Group

  • Route: /callcenter/:callcenter_id/contactgroup/:contactgroup_id/contacts/search

  • Method: GET

  • Params: callcenter_id, contactgroup_id

  • Query: q, limit, page

  • Return Format:

    • Success: 200 { success: true, result: result.splice(0, limit), hasMore, count }
    • Failure: 400{ success: false, error: { message: error } }

Add Agents in Contact Group

  • Route: /callcenter/:callcenter_id/contactgroup/:contactgroup_id/agents
  • Method: POST
  • Params: callcenter_id, contactgroup_id
  • Query: versionSchema
  • Body: list
  • Return Format:
    • Success: 200 { success: true, result }
    • Failure: 400 { success: false, error: { message: error } }

Get Agents in Contact Group

  • Description: Get agents in a contact group.

  • Route: /callcenter/:callcenter_id/contactgroup/:contactgroup_id/agents

  • Method: GET

  • Params: callcenter_id, contactgroup_id

  • Return Format:

    • Success: 200 { success: true, result }

    • Failure: 400 { success: false, error: { message: error } }

Delete Agents in Contact Group

  • Route: /callcenter/:callcenter_id/contactgroup/:contactgroup_id/agents
  • Method: DELETE
  • Params: callcenter_id, contactgroup_id
  • Query: versionSchema
  • Body: list
  • Return Format:
    • Success: 200 { success: true }
    • Failure: 400b{ success: false, error: { message: error } }

Add Agents in Contact Groups

  • Route: /callcenter/:callcenter_id/contactgroups/agents
  • Method: POST
  • Params: callcenter_id
  • Query: versionSchema
  • Body: list, all, ids
  • Return Format:
    • Success: 200 { success: true, result }
    • Failure: 400 { success: false, error: { message: error } }

Delete Agents in Contact Groups

  • Description: Add agents from multiple contact groups.
  • Route: /callcenter/:callcenter_id/contactgroups/agents
  • Method: DELETE
  • Params: callcenter_id
  • Query: versionSchema
  • Body: list, all, ids
  • Return Format:
    • Success: 200 { success: true }
    • Failure: 400 { success: false, error: { message: error } }

contact.js

Create a Contact

  • Route: /callcenter/:callcenter_id/contact
  • Method: POST
  • Params: ``
  • Query: ``
  • Body: ``
  • Return Format:
    • Success: 200 success: true, result }
    • Failure: 400{ success: false, error: { message: error } }

Get Phone Information

  • Route: /callcenter/:callcenter_id/phone
  • Method: GET
  • Params: callcenter_id
  • Query: phone, idAgent
  • Return Format:
    • Success: 200 { success: true >= 0, result }
    • Failure: 400{ success: false, error: { message: error } }

Get A Contact

  • Route: /callcenter/:callcenter_id/contact/:contact_id
  • Method: GET
  • Params: contact_id, callcenter_id
  • Return Format:
    • Success : 200 { success: true, result }
    • Failure: 400{ success: false, error: { message: error } }

Update A Contact

  • Route: /callcenter/:callcenter_id/contact/:contact_id
  • Method: Update
  • Params: contact_id, callcenter_id
  • Query: versionSchema
  • Body: length, _id, createdAt, updatedAt, phone, phone2, phone3, birthday
  • Return Format:
    • Success : 200 { success: true, result }
    • Failure: 400{ success: false, error: { message: error } }

Delete A Contact

  • Route: /callcenter/:callcenter_id/contact/:contact_id
  • Method: DELETE
  • Params: contact_id, callcenter_id
  • Query: versionSchema
  • Return Format:
    • Success : 200 { success: true }
    • Failure: 400{ success: false, error: { message: error } }

Get Contacts

  • Route: /callcenter/:callcenter_id/contacts

  • Method: GET

  • Params: callcenter_id

  • Query: contactIDs, phones, time, liken, by, order, limit, page, idAgent, all, direction, status, group

  • Return Format:

    • Success: 200 { success: true, result: result.splice(0, limit), hasMore: true, count: 0 }
    • Failure: 400 { success: false, error: { message: error } }

Post Contacts

  • Route: /callcenter/:callcenter_id/contacts
  • Method: POST
  • Params: callcenter_id
  • Query: versionSchema
  • Body: list
  • Return Format:
    • Success: 200 { success: true, result })
    • Failure: 400 { success: false, error: { message: error } }

Delete Contacts

  • Route: /callcenter/:callcenter_id/contacts

  • Method: DELETE

  • Params: callcenter_id

  • Query: versionSchema

  • Body: all, idGroup, contactIDs

  • Return Format:

    • Success : 200 { success: true }
    • Failure: 400 { "success": false, "error": { message: error }}

Update Contacts

  • Route: /callcenter/:callcenter_id/contacts

  • Method: UPDATE

  • Params: callcenter_id, versionSchema

  • Body: listContact, all

  • Return Format:

    • Success : 200 { success: true }
    • Failure: 400 { "success": false, "error": { message: error }}

Delete a Contact Group

  • Route: /callcenter/:callcenter_id/contacts/group
  • Method: DELETE
  • Params: callcenter_id, versionSchema
  • Body: listContact, all
  • Return Format:
    • Success: 200 {success: true}
    • Failure: 400 {"success": false, "error": { "message": "" } }

Search Contacts

  • Route: /callcenter/:callcenter_id/contacts/search
  • Method: GET
  • Params: callcenter_id
  • Query: page, on, mode, q, idAgent
  • Return Format:
    • Success: 200 { success: true, result, count }
    • Failure: 400 { success: false, error: { message: error } }

Get Contact Groups

  • Route: /callcenter/:callcenter_id/contact/:contact_id/groups

  • Method: GET

  • Params: callcenter_id, contact_id

  • Query: limit, page, all

  • Return Format:

    • Success : 200 { success: true, result: result.splice(0, limit), hasMore }
    • Failure: 400 { success: false, error: { message: error } }

Delete Contact Groups

  • Route: /callcenter/:callcenter_id/contact/:contact_id/groups

  • Method: DELETE

  • Params: callcenter_id, contact_id

  • Query: versionSchema

  • Body: limit, all

  • Return Format:

    • Success : 200 { success: true })
    • Failure : 400 { success: false, error: { message: error } }

groupField.js

Create A GroupField

  • Route: /callcenter/:callcenter_id/groupfield
  • Method: POST
  • Params: callcenter_id
  • Query: versionSchema
  • Body: name, displayName
  • Return Format:
    • Success: 200 { success: true, result }
    • Failure: 400 { success: false, error: { message: error } }

Get A GroupField

  • Route: /callcenter/:idCallcenter/groupfield/:id
  • Method: GET
  • Params: idCallcenter, id
  • Return Format:
    • Success: 200 { success: true, result }
    • Failure: 400 { success: false, error: { message: error } }

Update A GroupField

  • Route: /callcenter/:idCallcenter/groupfield/:id
  • Method: PUT
  • Params: idCallcenter, id
  • Query: versionSchema
  • Body: name, displayName
  • Return Format:
    • Success: 200 { success: true, data: result })
    • Failure: 400 { success: false, error: { message: error } }

Delete A GroupField By ID

  • Route: /callcenter/:idCallcenter/groupfield/:id
  • Method: DELETE
  • Params: idCallcenter, id
  • Query: versionSchema
  • Return Format:
    • Success: 200 { success: true }
    • Failure: 400{ success: false, error: { message: error } }

Get All GroupFields

  • Route: /callcenter/:idCallcenter/groupfields/all

  • Method: GET

  • Params: idCallcenter

  • Query: req.query

  • Return Format:

    • Success: { success: true, result }
    • Failure: { success: false, error: { message: error } }

template.js

Create A Template

  • Route: /callcenter/:callcenter_id/template
  • Method: POST
  • Params: callcenter_id
  • Query: versionSchema
  • Body: name,type (sms, callTag)
  • Return Format:
    • Success: 200 success: true, result }
    • Failure: 400 { success: false, error: { message: error } }

Update Template By TemplateID

  • Route: /callcenter/:callcenter_id/template/:template_id
  • Method: PUT
  • Params: callcenter_id, template_id
  • Query: versionSchema
  • Body: name, title, deleted
  • Return Format:
    • Success: 200 { success: true, result }
    • Failure: 400 { success: false, error: { message: error } }

Delete Template By TemplateID

  • Route: /callcenter/:callcenter_id/template/:template_id
  • Method: DELETE
  • Params: callcenter_id, template_id
  • Query: versionSchema
  • Return Format:
    • Success: 200 { success: true }
    • Failure: 400 { success: false, error: { message: error } }

Get All Templates

  • Route: /callcenter/:callcenter_id/templates/all
  • Method: GET
  • Params: callcenter_id
  • Query: req.query
  • Return Format:
    • Success: 200 { success: true, result }
    • Failure: 400 { success: false, error: { message: error } }